﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.IO;
using System.Configuration;
using Common;
using DevExpress.Web.ASPxEditors;
using DevExpress.Web.ASPxGridView;
using Model;


public partial class CumplirManifiestoMinisterio : PageBase
{
    protected void Page_Load(object sender, EventArgs e)
    {
        cargarnumeromanifiestocumplir();
    }
    #region Buscar Cumplir Manifiesto
    protected void BuscarCumplirManifiesto_Click(object sender, EventArgs e)
    {
        string strUsuario = "";
        string strClave = "";
       

        if (Usuario.UsuId == 9)
        {
            strUsuario = "clara13@270";
            strClave = "cla1020736056";
        }
        else if (Usuario.UsuId == 15)
        {
            strUsuario = "paul91@270";
            strClave = "paul91541069";
        }

        try
        {
            string strCadena = "<?xml version='1.0' encoding='ISO-8859-1' ?><root><acceso><username" + strUsuario + "/username><password" + strClave + "/password></acceso><solicitud><tipo>3</tipo><procesoid>4</procesoid></solicitud><variables>NUMPLACA, NUMMANIFIESTOCARGA, mannombretitular</variables><documento><NUMNITEMPRESATRANSPORTE>8600390049</NUMNITEMPRESATRANSPORTE><estado>'AC'</estado></documento></root>";
            wsMintransporte.BPMServicesClient obj = new wsMintransporte.BPMServicesClient();
            string strSalida = obj.AtenderMensajeRNDC(strCadena);

            DataSet ds = new DataSet();
            StringReader reader = new StringReader(strSalida);


            ds.ReadXml(reader);
            if (ds != null)
            {
                ddlManifiestocumplir.DataSource = ds.Tables[0];
                ddlManifiestocumplir.TextField = "NUMMANIFIESTOCARGA";
                ddlManifiestocumplir.ValueField = "NUMMANIFIESTOCARGA";
                ddlManifiestocumplir.DataBind();
            }
        }

        catch (Exception ex)
        {

            msgBox1.alert(ex.Message.ToString());
        }
    }
    #endregion
    #region cargar numero manifiestos
    protected void cargarnumeromanifiestocumplir()
    {
        string strUsuario = "";
        string strClave = "";
        

        if (Usuario.UsuId == 9)
        {
            strUsuario = "clara13@270";
            strClave = "cla1020736056";
        }
        else if (Usuario.UsuId == 15)
        {
            strUsuario = "paul91@270";
            strClave = "paul91541069";
        }

        try
        {
            string strCadena = "<?xml version='1.0' encoding='ISO-8859-1' ?><root><acceso><username" + strUsuario + "/username><password" + strClave + "/password></acceso><solicitud><tipo>3</tipo><procesoid>4</procesoid></solicitud><variables>NUMPLACA, NUMMANIFIESTOCARGA, mannombretitular</variables><documento><NUMNITEMPRESATRANSPORTE>8600390049</NUMNITEMPRESATRANSPORTE><estado>'AC'</estado></documento></root>";
            wsMintransporte.BPMServicesClient obj = new wsMintransporte.BPMServicesClient();
            string strSalida = obj.AtenderMensajeRNDC(strCadena);

            DataSet ds = new DataSet();
            StringReader reader = new StringReader(strSalida);
            ds.ReadXml(reader);
            foreach (DataTable myTable in ds.Tables)
            {
                foreach (DataRow myRow in myTable.Rows)
                {
                    myRow["mannombretitular"] = myRow["NUMMANIFIESTOCARGA"] + " " + myRow["NUMPLACA"] + " " + myRow["mannombretitular"];
                }
            }


            if (ds != null)
            {
                ddlManifiestocumplir.DataSource = ds.Tables[0];
                ddlManifiestocumplir.TextField = "mannombretitular";
                ddlManifiestocumplir.ValueField = "NUMMANIFIESTOCARGA";
                ddlManifiestocumplir.DataBind();
            }
        }

        catch (Exception ex)
        {

            msgBox1.alert(ex.Message.ToString());
        }
    }
    #endregion
    #region cargar datos manifiesto
    protected void cargardatosmanifiesto_Click(object sender, EventArgs e)
    {
        string strUsuario = "";
        string strClave = "";
        

        if (Usuario.UsuId == 9)
        {
            strUsuario = "clara13@270";
            strClave = "cla1020736056";
        }
        else if (Usuario.UsuId == 15)
        {
            strUsuario = "paul91@270";
            strClave = "paul91541069";
        }

        try
        {
            string strCadena = "<?xml version='1.0' encoding='ISO-8859-1' ?><root><acceso><username" + strUsuario + "/username><password" + strClave + "/password></acceso><solicitud><tipo>3</tipo><procesoid>4</procesoid></solicitud><variables>nummanifiestocarga, numplaca, fechacrea, manorigen, numplacaremolque, mandestino, mannombreconductor, numidconductor, valorfletepactadoviaje, retencionfuentemanifiesto, mandescu_ley, manvlrtotflete, valoranticipomanifiesto, mansaldo, mancantidadremesas</variables><documento><NUMNITEMPRESATRANSPORTE>8600390049</NUMNITEMPRESATRANSPORTE>";
            strCadena = strCadena + "<NUMMANIFIESTOCARGA>'" + ddlManifiestocumplir.Value.ToString() + "'</NUMMANIFIESTOCARGA></documento></root>";

            wsMintransporte.BPMServicesClient obj = new wsMintransporte.BPMServicesClient();
            string strSalida = obj.AtenderMensajeRNDC(strCadena);

            DataSet ds = new DataSet();
            StringReader reader = new StringReader(strSalida);
            ds.ReadXml(reader);
           
            if (ds.Tables[0].Rows.Count > 0)
            {
                txtConsecutivoManifiesto.Text = ds.Tables[0].Rows[0]["nummanifiestocarga"].ToString();

            }

            if (ds.Tables[0].Rows.Count > 0)
            {

                txtPlacaVehiculo.Text = ds.Tables[0].Rows[0]["numplaca"].ToString();

            }

            if (ds.Tables[0].Rows.Count > 0)
            {

                txtFechaExpedicion.Text = ds.Tables[0].Rows[0]["fechacrea"].ToString();

            }

            if (ds.Tables[0].Rows.Count > 0)
            {

                txtOrigenManifiesto.Text = ds.Tables[0].Rows[0]["manorigen"].ToString();

            }
            
            if (ds.Tables[0].Rows.Count > 0)
            {
                txtPlacaSemiremolque.Text = ds.Tables[0].Rows[0]["numplacaremolque"].ToString();

            }

            if (ds.Tables[0].Rows.Count > 0)
            {

                txtDestinoManifiesto.Text = ds.Tables[0].Rows[0]["mandestino"].ToString();

            }

            if (ds.Tables[0].Rows.Count > 0)
            {

                txtConductor.Text = ds.Tables[0].Rows[0]["mannombreconductor"].ToString();

            }

            if (ds.Tables[0].Rows.Count > 0)
            {

                txtIdentificacionConductor.Text = ds.Tables[0].Rows[0]["numidconductor"].ToString();

            }
            
            if (ds.Tables[0].Rows.Count > 0)
            {

                txtValorpagarviaje.Text = ds.Tables[0].Rows[0]["valorfletepactadoviaje"].ToString();

            }
            if (ds.Tables[0].Rows.Count > 0)
            {

                txtValorFinal.Text = ds.Tables[0].Rows[0]["valorfletepactadoviaje"].ToString();

            }

            if (ds.Tables[0].Rows.Count > 0)
            {

                txtValorRetencionenlaFuente.Text = ds.Tables[0].Rows[0]["retencionfuentemanifiesto"].ToString();

            }
            
            if (ds.Tables[0].Rows.Count > 0)
            {
                txtValorRetencionIca.Text = ds.Tables[0].Rows[0]["mandescu_ley"].ToString();

            }

            if (ds.Tables[0].Rows.Count > 0)
            {

                txtNetoaPagar.Text = ds.Tables[0].Rows[0]["manvlrtotflete"].ToString();

            }

            if (ds.Tables[0].Rows.Count > 0)
            {

                txtValorAnticipo.Text = ds.Tables[0].Rows[0]["valoranticipomanifiesto"].ToString();

            }

            if (ds.Tables[0].Rows.Count > 0)
            {

                txtSaldoaPagar.Text = ds.Tables[0].Rows[0]["mansaldo"].ToString();

            }
            if (ds.Tables[0].Rows.Count > 0)
            {

                txtCantidadremesasasociadas.Text = ds.Tables[0].Rows[0]["mancantidadremesas"].ToString();

            }
        }
        catch (Exception ex)
        {

            msgBox1.alert(ex.Message.ToString());
        }
    }
    #endregion
    #region Cumplir Manifiesto
    private void Cumplir()
    {
        string strUsuario = "";
        string strClave = "";
        string strNit = "";


        strNit = "8600390049";

        if (Usuario.UsuId == 9)
        {
            strUsuario = "clara13@270";
            strClave = "cla1020736056";
        }
        else if (Usuario.UsuId == 15)
        {
            strUsuario = "paul91@270";
            strClave = "paul91541069";
        }



        try
        {
            string strCadena = "<?xml version='1.0' encoding='ISO-8859-1' ?><root><acceso><username>" + strUsuario + "</username><password>" + strClave + "</password></acceso><solicitud><tipo>1</tipo><procesoid>6</procesoid></solicitud><variables><NUMNITEMPRESATRANSPORTE>" + strNit + "</NUMNITEMPRESATRANSPORTE>";
            if (ddlTipoCumplidoManifiesto.Value.ToString() == "C")
            {
                strCadena = strCadena + "<NUMMANIFIESTOCARGA>" + txtConsecutivoManifiesto.Text + "</NUMMANIFIESTOCARGA>";
                strCadena = strCadena + "<TIPOCUMPLIDOMANIFIESTO>" + ddlTipoCumplidoManifiesto.Value.ToString() + "</TIPOCUMPLIDOMANIFIESTO>";
                strCadena = strCadena + "<FECHAENTREGADOCUMENTOS>" + txtFechaDocumentos.Text + "</FECHAENTREGADOCUMENTOS>";
                strCadena = strCadena + "<VALORADICIONALHORASCARGUE>" + txtValoradicionalCargue.Text + "</VALORADICIONALHORASCARGUE>";
                strCadena = strCadena + "<VALORADICIONALHORASDESCARGUE>" + txtValoradicionalDescargue.Text + "</VALORADICIONALHORASDESCARGUE>";
                strCadena = strCadena + "<VALORADICIONALFLETE>" + txtValorAdicionalFlete.Text + "</VALORADICIONALFLETE>";
                strCadena = strCadena + "<MOTIVOVALORADICIONAL>" + ddlMotivoAdicionalFlete.Value.ToString() + "</MOTIVOVALORADICIONAL>";
                strCadena = strCadena + "<VALORDESCUENTOFLETE>" + txtValordescuentoAdicional.Text + "</VALORDESCUENTOFLETE>";
                strCadena = strCadena + "<MOTIVOVALORDESCUENTOMANIFIESTO>" + ddlMotivootrosDescuentos.Value.ToString() + "</MOTIVOVALORDESCUENTOMANIFIESTO>";
                strCadena = strCadena + "<VALORSOBREANTICIPO>" + txtValorSobreAnticipos.Text + "</VALORSOBREANTICIPO>";
                strCadena = strCadena + "<OBSERVACIONES>" + txtObservaciones.Text + "</OBSERVACIONES>";
                strCadena = strCadena + "</variables></root>";
            }
            else
            {
                strCadena = strCadena + "<NUMMANIFIESTOCARGA>" + txtConsecutivoManifiesto.Text + "</NUMMANIFIESTOCARGA>";
                strCadena = strCadena + "<TIPOCUMPLIDOMANIFIESTO>" + ddlTipoCumplidoManifiesto.Value.ToString() + "</TIPOCUMPLIDOMANIFIESTO>";
                strCadena = strCadena + "<MOTIVOSUSPENSIONMANIFIESTO>" + ddlMotivoSuspensionManifiesto.Value.ToString() + "</MOTIVOSUSPENSIONMANIFIESTO>";
                strCadena = strCadena + "<CONSECUENCIASUSPENSION>" + CONSECUENCIASUSPENSION.Value.ToString() + "</CONSECUENCIASUSPENSION>";
                strCadena = strCadena + "<FECHAENTREGADOCUMENTOS>" + txtFechaDocumentos.Text + "</FECHAENTREGADOCUMENTOS>";
                strCadena = strCadena + "<VALORADICIONALHORASCARGUE>" + txtValoradicionalCargue.Text + "</VALORADICIONALHORASCARGUE>";
                strCadena = strCadena + "<VALORADICIONALHORASDESCARGUE>" + txtValoradicionalDescargue.Text + "</VALORADICIONALHORASDESCARGUE>";
                strCadena = strCadena + "<VALORADICIONALFLETE>" + txtValorAdicionalFlete.Text + "</VALORADICIONALFLETE>";
                strCadena = strCadena + "<MOTIVOVALORADICIONAL>" + ddlMotivoAdicionalFlete.Value.ToString() + "</MOTIVOVALORADICIONAL>";
                strCadena = strCadena + "<VALORDESCUENTOFLETE>" + txtValordescuentoAdicional.Text + "</VALORDESCUENTOFLETE>";
                strCadena = strCadena + "<MOTIVOVALORDESCUENTOMANIFIESTO>" + ddlMotivootrosDescuentos.Value.ToString() + "</MOTIVOVALORDESCUENTOMANIFIESTO>";
                strCadena = strCadena + "<VALORSOBREANTICIPO>" + txtValorSobreAnticipos.Text + "</VALORSOBREANTICIPO>";
                strCadena = strCadena + "<OBSERVACIONES>" + txtObservaciones.Text + "</OBSERVACIONES>";
                strCadena = strCadena + "</variables></root>"; 
            }

            wsMintransporte.BPMServicesClient obj = new wsMintransporte.BPMServicesClient();
            string strSalida = obj.AtenderMensajeRNDC(strCadena);

            Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Mensaje, strSalida, lblMensaje);
            msgBox1.alert("Se ha Cumplido exitosamente el manifiesto, revisar el número de radicación en la parte superior");
        }
        catch (Exception objEx)
        {
            string algo = objEx.Message.ToString();

        }
    }
    #endregion


    protected void EnviarCumplidoManifiesto_Click(object sender, EventArgs e)
    {
        Cumplir();
    }

    protected void txtValoradicionalCargue_TextChanged(object sender, EventArgs e)
    {
        try
        {
            txtValorFinal.Text = Convert.ToString((Convert.ToDecimal(txtValorpagarviaje.Text) + Convert.ToDecimal(txtValoradicionalCargue.Text)));
            txtValorRetencionenlaFuente.Text = Convert.ToString(Math.Round((Convert.ToDecimal(txtValorFinal.Text) * Convert.ToDecimal(0.01)),0));
            txtValorRetencionIca.Text = Convert.ToString(((Convert.ToDecimal(txtValorRetencionIca.Text) * (Convert.ToDecimal(1000)) / Convert.ToDecimal(txtValorpagarviaje.Text))) * (Convert.ToDecimal(txtValorFinal.Text) / (Convert.ToDecimal(1000))));
            txtNetoaPagar.Text = Convert.ToString((Convert.ToDecimal(txtValorFinal.Text)) - (Convert.ToDecimal(txtValorRetencionenlaFuente.Text) + Convert.ToDecimal(txtValorRetencionIca.Text)));
            txtSaldoaPagar.Text = Convert.ToString((Convert.ToDecimal(txtNetoaPagar.Text)) - (Convert.ToDecimal(txtValorAnticipo.Text) + Convert.ToDecimal(txtValorSobreAnticipos.Text)));
        }
        catch (Exception ex)
        {

            msgBox1.alert(ex.Message.ToString());
        }
    }
    protected void txtValoradicionalDescargue_TextChanged(object sender, EventArgs e)
    {
        try
        {
            txtValorFinal.Text = Convert.ToString((Convert.ToDecimal(txtValorpagarviaje.Text) + Convert.ToDecimal(txtValoradicionalCargue.Text) + Convert.ToDecimal(txtValoradicionalDescargue.Text)));
            txtValorRetencionenlaFuente.Text = Convert.ToString(Math.Round((Convert.ToDecimal(txtValorFinal.Text) * Convert.ToDecimal(0.01)),0));
            txtValorRetencionIca.Text = Convert.ToString(((Convert.ToDecimal(txtValorRetencionIca.Text) * (Convert.ToDecimal(1000)) / (Convert.ToDecimal(txtValoradicionalCargue.Text) + Convert.ToDecimal(txtValorpagarviaje.Text)))) * (Convert.ToDecimal(txtValorFinal.Text) / (Convert.ToDecimal(1000))));
            txtNetoaPagar.Text = Convert.ToString((Convert.ToDecimal(txtValorFinal.Text)) - (Convert.ToDecimal(txtValorRetencionenlaFuente.Text) + Convert.ToDecimal(txtValorRetencionIca.Text)));
            txtSaldoaPagar.Text = Convert.ToString((Convert.ToDecimal(txtNetoaPagar.Text)) - (Convert.ToDecimal(txtValorAnticipo.Text) + Convert.ToDecimal(txtValorSobreAnticipos.Text)));
        }
        catch (Exception ex)
        {

            msgBox1.alert(ex.Message.ToString());
        }
    }
    protected void txtValorAdicionalFlete_TextChanged(object sender, EventArgs e)
    {
        try
        {
            txtValorFinal.Text = Convert.ToString((Convert.ToDecimal(txtValorpagarviaje.Text) + Convert.ToDecimal(txtValoradicionalCargue.Text) + Convert.ToDecimal(txtValoradicionalDescargue.Text) + Convert.ToDecimal(txtValorAdicionalFlete.Text)));
            txtValorRetencionenlaFuente.Text = Convert.ToString((Convert.ToDecimal(txtValorFinal.Text) * Convert.ToDecimal(0.01)));
            txtValorRetencionIca.Text = Convert.ToString(((Convert.ToDecimal(txtValorRetencionIca.Text) * (Convert.ToDecimal(1000)) / (Convert.ToDecimal(txtValoradicionalCargue.Text) + Convert.ToDecimal(txtValoradicionalDescargue.Text) + Convert.ToDecimal(txtValorpagarviaje.Text)))) * (Convert.ToDecimal(txtValorFinal.Text) / (Convert.ToDecimal(1000))));
            txtNetoaPagar.Text = Convert.ToString((Convert.ToDecimal(txtValorFinal.Text)) - (Convert.ToDecimal(txtValorRetencionenlaFuente.Text) + Convert.ToDecimal(txtValorRetencionIca.Text)));
            txtSaldoaPagar.Text = Convert.ToString((Convert.ToDecimal(txtNetoaPagar.Text)) - (Convert.ToDecimal(txtValorAnticipo.Text) + Convert.ToDecimal(txtValorSobreAnticipos.Text)));
        }
        catch (Exception ex)
        {

            msgBox1.alert(ex.Message.ToString());
        }
    }
    protected void txtValordescuentoAdicional_TextChanged(object sender, EventArgs e)
    {
        try
        {
            txtValorFinal.Text = Convert.ToString((Convert.ToDecimal(txtValorpagarviaje.Text) + Convert.ToDecimal(txtValoradicionalCargue.Text) + Convert.ToDecimal(txtValoradicionalDescargue.Text) + Convert.ToDecimal(txtValorAdicionalFlete.Text) + Convert.ToDecimal(txtValordescuentoAdicional.Text)));
            txtValorRetencionenlaFuente.Text = Convert.ToString((Convert.ToDecimal(txtValorFinal.Text) * Convert.ToDecimal(0.01)));
            txtValorRetencionIca.Text = Convert.ToString(((Convert.ToDecimal(txtValorRetencionIca.Text) * (Convert.ToDecimal(1000)) / (Convert.ToDecimal(txtValoradicionalCargue.Text) + Convert.ToDecimal(txtValoradicionalDescargue.Text) + Convert.ToDecimal(txtValorAdicionalFlete.Text) + Convert.ToDecimal(txtValorpagarviaje.Text)))) * (Convert.ToDecimal(txtValorFinal.Text) / (Convert.ToDecimal(1000))));
            txtNetoaPagar.Text = Convert.ToString((Convert.ToDecimal(txtValorFinal.Text)) - (Convert.ToDecimal(txtValorRetencionenlaFuente.Text) + Convert.ToDecimal(txtValorRetencionIca.Text)));
            txtSaldoaPagar.Text = Convert.ToString((Convert.ToDecimal(txtNetoaPagar.Text)) - (Convert.ToDecimal(txtValorAnticipo.Text) + Convert.ToDecimal(txtValorSobreAnticipos.Text)));
        }
        catch (Exception ex)
        {

            msgBox1.alert(ex.Message.ToString());
        }
    }
    protected void txtValorSobreAnticipos_TextChanged(object sender, EventArgs e)
    {
        try
        {
            txtSaldoaPagar.Text = Convert.ToString((Convert.ToDecimal(txtNetoaPagar.Text)) - (Convert.ToDecimal(txtValorAnticipo.Text) + Convert.ToDecimal(txtValorSobreAnticipos.Text)));
        }
        catch (Exception ex)
        {

            msgBox1.alert(ex.Message.ToString());
        }
    }
}